#-*- coding: utf8 -*-

from tutor.script import *
from tutor.plugin.maple import *

# meta information
meta(author       = 'Fábio Mendes',
     creationdate = datetime(2010, 10, 9),
     status       = 'testing',
     difficulty   = 'easy',
     time         = 10,
     itemtype     = 'test')

# regiao
params = [
#    M('1, 3/2, 1'),
#    M('1, 2, 1/6'),
#    M('1, 2, 1/2'),
    M('1, 2, 1'),
    M('1, 2, 2'),
    M('1, 2, 2'),
    M('1, 2, 3'),
    M('1, 3, 1'),
    M('1, 3, 2'),
##    M('2, 3, 2'),
#    M('2, 4, 1/2'),
    M('2, 4, 2'),
]

a,b,c = oneof(*params)
d = a + c
print('a=%s, b=%s, c=%s, d=%s' % (a,b,c,d))

# resposta
rr = M('`..`')
def resp(func=x*z, a=a, b=b, c=c, d=d):
    _ = M.int(func, z==rr(0, x))
    _ = M.int(_, y==rr(0, c + x))
    I1 = M.int(_, x==rr(0, a))
    
    _ = M.int(func, z==rr(0, x))
    _ = M.int(_, y==rr(0, d))
    I2 = M.int(_, x==rr(a, b))
    
    return M.combine(M.simplify(I1 + I2))

# Testa bons pontos
#N = 36
#for ai in range(1, N):
#    for bi in range(1, N):
#            ci = 9
#            bi = bi + ai
#            a, b, c = map(lambda x: M(str(x))/6, (ai,bi,ci))
#            R = resp(a=a, b=b, c=c, d=c+a)
#            if len(str(M.numer(R))) < 4 and len(str(M.denom(R))) < 4: 
#                print (a,b,c), R


question(r'''Calcule a integral $\iiint_{R}dV\, xz$ onde $R$ é a região delimitada
pelo polígono irregular com vértices em $(0,0)$, $(0,#1)$, $(#2,#3)$,
$(#4,#5)$, $(#6,0)$ e os planos $z=0$ e $z=x$.
''', c, a, d, b, d, b)
multiplechoice()

# choice:
choice_eq(1, resp())
explanation('Escolha correta!') 

# choice:
choice_eq(0.5, resp(func=1))
explanation('Se esqueceu do integrando!') 

# choice:
choice_eq(0.25, resp(b=a))
explanation('Calculou apenas metade da região de integração.') 

# choice:
choice_eq(0, resp(b=a) + resp(a=0))
explanation('Usou um limite errado na segunda região de integração.') 

# choice:
choice_eq(0, resp(a=0))
explanation('Usou uma região quadrada na base. É necessário dividir a região de integração.') 

# choice:
choice_eq(0, resp(a=b))
explanation('Utilizou um losango na base. É necessário dividir a região de integração.') 

end()